As computers become more commonplace in everyday life, so do the demands on the functionality they provide. As such, computer programs are increasingly growing in size resulting in program bloat, data corruption, and “spaghetti” code. A very popular solution to these problems is provided through applets. An applet is generally a small part of an application that can be distributed economically. For example, an applet may display a form on a computer screen, spell-check a document, or refill a prescription. Programs written in Java language are often organized into applets. Applets can be interpreted at run-time, in part, because of their relatively small size.
With the growth of the number of applets in the present day computer systems and the increase in the number of computing devices being utilized at various locations (including remote locations), provision of persistence storage poses a great problem to the software industry. Persistence storage is generally considered as a non-volatile memory capable of storing data, for example, between invocations of a program. Databases and file systems are two common examples of persistent storage. Given the unique characteristics of applets, there is a need to save data (such as the applet state) for each applet. Accordingly, it is often necessary to be able to save this data in a manner unique to each instance of an applet. But, it is impractical to write special code for every applet instance that may occur. These problems are illustrated by the issues associated with storing data on a local file system versus a network file system versus a Web server versus a database.